<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{

/*==========================友==情==链==接===start========================*/
    /**
    *   友情链接的添加页面
    */
    public function LinkAdd()
    {
        return view('/admin/links/add');
    }
    /**
    *   友情链接的添加方法
    */
    public function LinkInsert(Request $request)
    {
        $this->validate($request,[
            'address'=>'required|unique:links',
            'linkname'=>'required|unique:links',
            ],[

            'address.required' =>'链接地址不能为空,请核对后再添加',
            'address.unique' =>'链接地址已存在,请核对后再添加',
            'linkname.required' =>'链接名不能为空,请核对后再添加',
            'linkname.unique' =>'链接名已存在,请核对后再添加',
            // 'address.regex' =>'链接地址格式不正确',
            ]);
        $arr = $request -> all();
        $addtime = date('Y-m-d H:i:s',time());
        $arr['addtime'] = $addtime;
        // var_dump($arr);
        $res = DB::table('links')->insert($arr);
        if($res) {
            return redirect('/admin/links/index')->with('success','链接添加成功');
        } else {
            $arr->flash();
            return back()->withInput();
        }
    }
    /**
    *   友情链接查看
    */
    public function LinkIndex(Request $request)
    {
    
        $num = $request -> input('num') ? $request -> input('num') :2;
        $search = $request -> input('search') ? $request -> input('search'): '';
        $res = DB::table('links')->
            where('linkname','like','%'.$search.'%')->
            paginate($num);

        $str['num'] = $num;
        $str['search'] = $search;
        // var_dump($arr);
        return view('/admin/links/index',['res'=>$res,'str'=>$str]);
    }

    /**
    *   友情链接修改页面
    */
    public function LinkEdit(Request $request)
    {
        $id = $request -> input('id');
        $res = DB::table('links')->where('id',$id)->first();
        // var_dump($res);
        return view('/admin/links/edit',['res'=>$res]);
    }
    /**
    *   友情链接修改方法
    */
    public function LinkUpdate(Request $request)
    {
        $this->validate($request,[
            'address'=>'required',
            'linkname'=>'required|unique:links',
            ],[

            'address.required' =>'链接地址不能为空,请核对后再添加',
            
            'linkname.required' =>'链接名不能为空,请核对后再添加',
            
            // 'address.regex' =>'链接地址格式不正确',
            ]);
        $arr = $request -> except('_token','id');
        $arr['addtime'] = date('Y-m-d H:i:s',time());
        $id = $request -> input('id');
        // var_dump($arr);
        $res = DB::table('links')->where('id',$id)->update($arr);

        if($res) {

            return redirect('/admin/links/index')->with('success','链接修改成功');
        } else {

            $arr -> flash();
            return back()->withInput();
        }
    }
    /**
    *   友情链接删除方法
    */
    public function LinkDelete(Request $request)
    {
        $id = $request -> input('id');
        // echo $id;
        $res = DB::table('links')->where('id',$id)->delete();
        if ($res) {
            return redirect('/admin/links/index')->with('success','链接删除成功');
        } else {
            return redirect('/admin/links/index')->with('error','链接删除失败');
        }
    }

/*=========================友==情==链==接===end==============================*/

/*=========================新==闻==公==告===start============================*/
    /**
    *   新闻公告
    */
    // 新闻公告显示页面
    public function NewsIndex(Request $request)
    {
        $num = $request -> input('num') ? $request -> input('num') :2;
        $search = $request -> input('search') ? $request -> input('search'): '';
        $res = DB::table('news')->
            where('title','like','%'.$search.'%')->
            paginate($num);

        $str['num'] = $num;
        $str['search'] = $search;
        // var_dump($arr);
        return view('/admin/news/index',['res'=>$res,'str'=>$str]);
    }
    // 新闻公告添加页面
    public function NewsAdd()
    {   
        return view('/admin/news/add');
    }
    // 新闻公告添加方法
    public function NewsInsert(Request $request)
    {
        $this->validate($request,[
            'title'=>'required',
            'content'=>'required',
            'author'=>'required',
            ],[

            'title.required' =>'新闻标题不能为空,请核对后再添加',
            'content.required' =>'新闻内容不能为空,请核对后再添加',
            'author.required' =>'作者不能为空,请核对后再添加',

            ]);
        $arr = $request -> except('_token');
        $addtime = date('Y-m-d H:i:s',time());
        $arr['addtime'] = $addtime;
        // var_dump($arr);
        // die();
        $res = DB::table('news')->insert($arr);
        if($res) {
            return redirect('/admin/news/index')->with('success','新闻发布成功');
        } else {
            $arr->flash();
            return back()->withInput();
        }

    }
    // 新闻公告修改页面
    public function NewsEdit(Request $request)
    {
        $id = $request -> input('id');
        $res = DB::table('news')->where('id',$id)->first();
        // var_dump($res);
        // die();
        return view('/admin/news/edit',['res'=>$res]);

    }
    // 新闻公告修改方法
    public function NewsUpdate(Request $request)
    {
        $arr = $request->except('_token','id');
        $id = $request->input('id');
        $res = DB::table('news')->where('id',$id)->update($arr);
        $arr['addtime'] = date('Y-m-d H:i:s',time());
        if ($res) {
            return redirect('/admin/news/index')->with('success','新闻修改成功');
        } else {
            return back()->with('error','新闻修改失败');
        }
    }
    // 新闻公告删除方法
    public function NewsDelete(Request $request)
    {
        $id = $request -> input('id');
        $res = DB::table('news')->where('id',$id)->delete();
        if($res) {
            return redirect('/admin/news/index')->with('success','新闻删除成功');
        } else {
            return back()->with('error','新闻删除失败');
        }
    }
/*=========================新==闻==公==告===end==============================*/

/*=========================后==台==登==录===first============================*/
    
    /**
    *   后台登录页
    */
    public function AdminLogin()
    {
        return view('/admin/users/login');
    }

    /**
    *   后台登录判断
    */
    public function AdminDoLogin(Request $request)
    {
        // var_dump($request->all());
        $arr = $request->except('_token');
        $res = DB::table('admin')->where('username',$arr['username'])->first();
        if(!$res) {

            return back()->with('error','用户名不存在,请核对后登陆');
        }
        // Hash::check($res["password"],$arr['password'])
        if($res['password']==$arr['password']) {
            
            session(['uid'=>$res['id']]);

            return redirect('admin')->with('success','登录成功');
        } else {
            return back()->with('error','用户名与密码不匹配,请核对后登录');
        }
    }

    /**
    *   管理员退出的处理方法
    */
    public function AdminLogout()
    {
        session(['uid'=>'']);
        return redirect('/admin/login');
    }

    /**
    *   后台管理员修改密码页面
    */
    public function AdminEdit()
    {
        return view('/admin/users/AdminEdit');
    }


    /**
    *   后台管理员修改密码方法
    */
    public function AdminUpdate(Request $request)
    {
        $arr = $request->except('_token');
        $res = DB::table('admin')->where('id',$arr['id'])->first();
        $pass['password'] = $arr['password'];
        // var_dump($pass);die;
        if($arr['oldpassword'] != $res['password']) {

            return back()->with('error','原密码不正确,请检查');
        }
        if($arr['password'] != $arr['repassword']) {
            return back()->with('error','新密码俩次匹配不正确,请检查');
        }

        $info = DB::table('admin')->where('id',$arr['id'])->update($pass);
        session(['uid'=>'']);
        return redirect('/admin/login')->with('success','密码修改成功,请重新登录');
    }
/*=========================后==台==登==录===end==============================*/
}

